Önemli Notlar

  • wYanında Değiştirmeyin ibaresi bulunan hiçbir kodu ve/veya satırı değiştirmeyin.
  • Yazılardakı ve kodlardaki açıklamaları dikkatlice okuyun.
  • Kodların sırasını mümkün olduğunca değiştirmeyin. Aksi taktirde hata ile karşılaşabilirsiniz.
  • Paketler bölümünde, gerekli R paketlerini bu belgede kodu verilmiş Load.Install fonksiyonunu kullanarak indirin ve yükleyin.
  • Seed bölümünde, istediğiniz sayıyı kullanabilirsiniz. Rassal olarak seçilen değerler, eğer varsa, seçtiğiniz sayıya göre değişecektir.
  • R hakkında daha fazla bilgi için, benim yazdığım R mini BootCamp adlı İngilizce kaynaktan faydalanabilirsiniz.

1 Hazırlık

1.1 Paketler

  • R paketlerini Load.Install fonksiyonunu kullanarak indirin ve/veya yükleyin.
# Gerekli paketlerin yüklenmesi.
Load.Install(c("rstudioapi", "readxl", "plyr", "dplyr", "tidyr", "stringr", "stringi", "Hmisc", "reshape2", "scales", "ggplot2", "xtable", "latex2exp", "forecast", "WDI", "fpp2", "fpp3", "datasets", "quantmod", "ggseas", "slider"))

1.2 Seed

  • Aşağıdaki R kodu bölümünde istediğiniz sayıyı girebilirsiniz.
set.seed(1234)

2 Veri Yükleme

  • Bu bölümde zaman serileri verisinin farklı kaynaklardan yüklenmesi gösterilecektir.

2.1 World Bank Verisi

  • World Bank’ten direkt olarak WDI R paketini kullanarak veri indirip yüklemeye çalışalım.
  • World Bank’ten veri indirip yüklemek için temel olarak 2 fonksiyonu kullanacağız: WDIsearch ve WDI.
    • WDIsearch fonksiyonu ile indirip yüklemek istediğimiz veriyi belirleyebiliriz.
    • WDI fonksiyonu ile belirlediğimiz veriyi indirip yükleyebiliriz.
  • Örnek olması açısından “Türkiye için Nominal Gayri Safi Yurtiçi Hasıla” verisini TL cinsinden indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Son olarak temizlenmiş ve düzenlemiş veriyi grafiğe dökelim.
WDIsearch(string = "gdp.*current.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.CN" GDP (current LCU) datasını kullanacağız.
#>      indicator          
#> [1,] "NV.SRV.DISC.CN"   
#> [2,] "NY.GDP.DISC.CN"   
#> [3,] "NY.GDP.MKTP.CN"   
#> [4,] "NY.GDP.MKTP.CN.AD"
#> [5,] "NY.GDP.PCAP.CN"   
#> [6,] "NYGDPMKTPSACN"    
#>      name                                                      
#> [1,] "Discrepancy in GDP, value added (current LCU)"           
#> [2,] "Discrepancy in expenditure estimate of GDP (current LCU)"
#> [3,] "GDP (current LCU)"                                       
#> [4,] "GDP: linked series (current LCU)"                        
#> [5,] "GDP per capita (current LCU)"                            
#> [6,] "GDP,current LCU,millions,seas. adj.,"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.CN"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "NY.GDP.MKTP.CN")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "GDP") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "GDP")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "GDP"
variable.name <- "Nominal GSYH (TL)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


2.2 R Paketleri Verisi

  • Bazı R paketlerinde mevcut olan veriyi direkt olarak yüklemeye çalışalım.
  • R paketlerinde mevcut olan veriyi yüklemek için 1 fonksiyon kullanacağız: data.
    • data fonksiyonu ile istediğimiz veriyi direkt olarak R’ın içine yükleyebiliriz.
  • Örnek olması açısından fpp2 R paketinden “Avustralya Elektrik Üretimi (milyar kWh)” verisini yükleyelim.
    • fpp2 R paketinden yüklemek istediğimiz verinin ismi qauselec’tir.
  • Daha sonra yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Son olarak temizlenmiş ve düzenlemiş veriyi grafiğe dökelim.
data(qauselec) ## Datayı yüklüyoruz.
data <- qauselec ## Yüklediğimiz datayı "data" ismi ile kaydediyoruz.
head(data, 20) ## Datanın yapısını inceleyelim.
#>       Qtr1  Qtr2  Qtr3  Qtr4
#> 1956 3.923 4.436 4.806 4.418
#> 1957 4.339 4.811 5.259 4.735
#> 1958 4.608 5.196 5.609 4.977
#> 1959 4.883 5.744 6.035 5.514
#> 1960 5.387 6.211 6.659 5.983
data <- data.frame(Date = as.Date(time(data)), Elec.Prod = as.matrix(data), stringsAsFactors = FALSE) ## Yüklediğimiz data time series formatında olduğu için bu datayı data.frame formatına çeviriyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "Elec.Prod"
variable.name <- "Avustralya Elektrik Üretimi (milyar kWh)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


2.3 Excel Verisi

  • Excel dosyasından direkt olarak veri yüklemeye çalışalım.
  • Excel dosyasından veri yüklemek için 1 fonksiyon kullanacağız: read_excel.
    • read_excel fonksiyonu ile veriyi direkt olarak R’ın içine yükleyebiliriz.
  • Örnek olması açısından “İstanbul’a Verilen Temiz Su Miktarları” verisini yükleyelim.
  • Daha sonra yüklediği bu veriyi temizleyelim ve düzenleyelim.
  • Son olarak temizlenmiş ve düzenlemiş veriyi grafiğe dökelim.
file.path <- "clean-water.xlsx" ## Data dosyasının ismi ve uzantısı.

# Ham data yüklenmesi
data <- read_excel(path = file.path, sheet = 3, range = cell_limits(c(1, 1), c(NA, NA)), col_names = TRUE, col_types = "text") ## Yüklediğimiz datayı tibble formatında kaydediyoruz.
data <- as.data.frame(data, stringsAsFactors = FALSE) ## Datayı data.frame formatına çeviriyoruz.
data ## Datanın yapısını inceleyelim.
colnames(data)[1] <- "Month" ## İlk sütun ismini değiştiriyoruz.
data$Month <- 1:12 ## İlk sütundaki hücrelere ay ismi yerine rakam veriyoruz.

# Datanın dönüştürülmesi.
data <- reshape2::melt(data, id.vars = c("Month"), variable_name = "value")

# Bazı değişiklikler.
data <- dplyr::rename(data, Year = variable)
data <- dplyr::rename(data, Clean.Water = value)
data$Year <- as.numeric(as.character(data$Year))
data$Clean.Water <- as.numeric(data$Clean.Water)
data$Date <- as.Date(paste(data$Year, data$Month, "1", sep = "-")) ## Date adlı tarihi belirten yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "Month", "Clean.Water")] ## İstediğimiz değişkenleri belirtiyoruz.
data <- data[data$Year != 2019, ] ## 2019 datasının son gözleminde bir problem olduğu için 2019 yılını siliyoruz.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "Clean.Water"
variable.name <- "İstanbul'a Verilen Temiz Su Miktarı (Ton)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Ay)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


2.4 CSV Verisi

  • CSV dosyasından den direkt olarak veri yüklemeye çalışalım.
  • CSV dosyasından veri yüklemek için 1 fonksiyon kullanacağız: read_excel.
    • read.csv fonksiyonu ile veriyi direkt olarak R’ın içine yükleyebiliriz.
  • Örnek olması açısından “İstanbul Barajlarinin Doluluk Oranları” verisini yükleyelim.
  • Daha sonra yüklediği bu veriyi temizleyelim ve düzenleyelim.
  • Son olarak temizlenmiş ve düzenlemiş veriyi grafiğe dökelim.
file.path <- "dam_occupancy.csv" ## Data dosyasının ismi ve uzantısı.

# Ham data yüklenmesi
data <- read.csv(file = file.path, header = TRUE, sep = ",", dec = ".", colClasses = "character", comment.char = "", na.string = "") ## Datanın yüklenmesi.
data ## Datanın yapısını inceleyelim.
colnames(data) <- c("Date", "Occupancy.Rate", "Reserved.Water") ## Sütun isimlerinin değiştirilmesi.
data$Occupancy.Rate <- as.numeric(data$Occupancy.Rate) ## Numerik kategori olarak değiştirildi.
data$Reserved.Water <- as.numeric(data$Reserved.Water) ## Numerik kategori olarak değiştirildi.
data$Date <- as.Date(data$Date, tz = "UTC", format = "%Y-%m-%d") ## Date kategori olarak değiştirildi.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "Occupancy.Rate"
variable.name <- "İstanbul Barajları Doluluk Oranı"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Gün)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


2.5 Yahoo Finance Verisi

  • Yahoo Finance’ten direkt olarak quantmod R paketini kullanarak veri indirip yüklemeye çalışalım.
  • Yahoo Finance’ten veri indirip yüklemek için 1 fonksiyon kullanacağız: loadSymbols.
    • loadSymbols fonksiyonu ile istediğimiz veriyi direkt olarak R’ın içine yükleyebiliriz.
  • Örnek olması açısından “Google Hisse Senedi Fiyatı” verisini indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Son olarak temizlenmiş ve düzenlemiş veriyi grafiğe dökelim.
loadSymbols(Symbols = "GOOG", periodicity = "daily", return.class = "data.frame") ## Yahoo Finance uzerinden buldugumuz sembolu (GOOG) kullanarak ve datanın frekansını seçerek datayı indirip yükleyebiliriz. İndirdiğimiz datanın ismi sembol ismi ile aynı olacaktır.
#> 'getSymbols' currently uses auto.assign=TRUE by default, but will
#> use auto.assign=FALSE in 0.5-0. You will still be able to use
#> 'loadSymbols' to automatically load data. getOption("getSymbols.env")
#> and getOption("getSymbols.auto.assign") will still be checked for
#> alternate defaults.
#> 
#> This message is shown once per session and may be disabled by setting 
#> options("getSymbols.warning4.0"=FALSE). See ?getSymbols for details.
#> [1] "GOOG"
GOOG ## Datanın yapısını inceleyelim.

data <- data.frame(Date = rownames(GOOG), Google = GOOG$GOOG.Close, stringsAsFactors = FALSE) ## Kapanış fiyatları seçiliyor ve sütun ismi olarak Google veriliyor.
data$Date <- as.Date(data$Date) ## Date kategori olarak değiştiriliyor.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "Google"
variable.name <- "Google Hisse Senedi Fiyatı"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Gün)") + ylab(latex2exp::TeX(variable.name)) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


3 Verinin Hazırlanması

  • Bu bölümde zaman serileri verisinin hazırlanması için uygulanabilecek teknikler farklı kaynaklardan veriler kullanılarak gösterilecektir.

3.1 Enflasyon Ayarlaması

  • Örnek olması açısından World Bank’ten “Türkiye için Nominal Gayri Safi Yurtiçi Hasıla” verisini TL cinsinden ve “Türkiye için Gayri Safi Yurtiçi Hasıla Deflatörü (2009 Baz Yılı)” verisini beraber indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş verinin enflasyon ayarlamasını yapalım.
  • Son olarak enflasyon ayarlaması yapılmış veriyi grafiğe dökelim.
WDIsearch(string = "gdp.*current.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.CN" GDP (current LCU) datasını kullanacağız.
#>      indicator          
#> [1,] "NV.SRV.DISC.CN"   
#> [2,] "NY.GDP.DISC.CN"   
#> [3,] "NY.GDP.MKTP.CN"   
#> [4,] "NY.GDP.MKTP.CN.AD"
#> [5,] "NY.GDP.PCAP.CN"   
#> [6,] "NYGDPMKTPSACN"    
#>      name                                                      
#> [1,] "Discrepancy in GDP, value added (current LCU)"           
#> [2,] "Discrepancy in expenditure estimate of GDP (current LCU)"
#> [3,] "GDP (current LCU)"                                       
#> [4,] "GDP: linked series (current LCU)"                        
#> [5,] "GDP per capita (current LCU)"                            
#> [6,] "GDP,current LCU,millions,seas. adj.,"
WDIsearch(string = "gdp.*deflator", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.DEFL.ZS" GDP deflator (base year varies by country) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#>       indicator             
#>  [1,] "NY.GDP.DEFL.87.ZG"   
#>  [2,] "NY.GDP.DEFL.KD.ZG"   
#>  [3,] "NY.GDP.DEFL.KD.ZG.AD"
#>  [4,] "NY.GDP.DEFL.ZS"      
#>  [5,] "NY.GDP.DEFL.ZS.87"   
#>  [6,] "NY.GDP.DEFL.ZS.AD"   
#>  [7,] "NY.GDP.MKTP.CD.XD"   
#>  [8,] "NY.GDP.MKTP.CN.XD"   
#>  [9,] "NY.GDP.MKTP.IN"      
#> [10,] "NY.GDP.MKTP.XD"      
#> [11,] "NY.GDP.MKTP.XU.E"    
#>       name                                                       
#>  [1,] "Inflation, GDP deflator (annual %)"                       
#>  [2,] "Inflation, GDP deflator (annual %)"                       
#>  [3,] "Inflation, GDP deflator: linked series (annual %)"        
#>  [4,] "GDP deflator (base year varies by country)"               
#>  [5,] "GDP deflator (1987 = 100)"                                
#>  [6,] "GDP deflator: linked series (base year varies by country)"
#>  [7,] "GDP deflator, index (2000=100; US$ series)"               
#>  [8,] "GDP deflator, period average (LCU index 2000=100)"        
#>  [9,] "GDP Deflator"                                             
#> [10,] "GDP deflator (1987=100,Index)"                            
#> [11,] "GDP deflator, end period (base year varies by country)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.CN", "NY.GDP.DEFL.ZS"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "NY.GDP.MKTP.CN", "NY.GDP.DEFL.ZS")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "GDP", "GDP.Deflator") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "GDP", "GDP.Deflator")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Enflasyon ayarlaması.
data[data$GDP.Deflator == 100, "Year"] ## Datanin baz yılı belirleniyor. 2009 yılı.
#> [1] 2009
data$R.GDP <- (data$GDP / data$GDP.Deflator) * 100 ## Enflasyon ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "R.GDP"
variable.name <- "Real GSYH (2009 TL)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


3.2 Nüfus Ayarlaması

  • Örnek olması açısından World Bank’ten “Türkiye için Reel Gayri Safi Yurtiçi Hasıla (2009 Baz Yılı)” verisini TL cinsinden ve “Türkiye için Nüfus” verisini beraber indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş verinin nüfus ayarlamasını yapalım.
  • Son olarak nüfus ayarlaması yapılmış veriyi grafiğe dökelim.
WDIsearch(string = "gdp.*constant.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.KN" GDP (constant LCU) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#>      indicator          
#> [1,] "NV.SRV.DISC.KN"   
#> [2,] "NY.GDP.DISC.KN"   
#> [3,] "NY.GDP.FCST.KN.87"
#> [4,] "NY.GDP.MKTP.KN"   
#> [5,] "NY.GDP.MKTP.KN.87"
#> [6,] "NY.GDP.PCAP.KN"   
#> [7,] "NYGDPMKTPSAKN"    
#>      name                                                       
#> [1,] "Discrepancy in GDP, value added (constant LCU)"           
#> [2,] "Discrepancy in expenditure estimate of GDP (constant LCU)"
#> [3,] "GDP at factor cost (constant 1987 LCU)"                   
#> [4,] "GDP (constant LCU)"                                       
#> [5,] "GDP at market prices (constant 1987 LCU)"                 
#> [6,] "GDP per capita (constant LCU)"                            
#> [7,] "GDP,constant 2010 LCU,millions,seas. adj.,"
WDIsearch(string = "SP.POP.TOTL", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "SP.POP.TOTL" Total Population datasını kullanacağız.
#>      indicator            name                                              
#> [1,] "SP.POP.TOTL.ICP"    "SP.POP.TOTL.ICP:Population"                      
#> [2,] "SP.POP.TOTL.ICP.ZS" "SP.POP.TOTL.ICP.ZS:Population shares (World=100)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.KN", "SP.POP.TOTL"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.

data <- data[, c("year", "NY.GDP.MKTP.KN", "SP.POP.TOTL")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP", "Population") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP", "Population")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Nüfus ayarlaması.
data$R.GDP.PCAP <- data$R.GDP / data$Population ## Nüfus ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "R.GDP.PCAP"
variable.name <- "Kişi Başı Reel GSYH (2009 TL)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


3.3 Kur Ayarlaması

  • Örnek olması açısından World Bank’ten “Türkiye için Kişi Başı Reel Gayri Safi Yurtiçi Hasıla (2009 Baz Yılı)” verisini TL cinsinden ve “TL/USD Döviz Kuru” verisini beraber indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş verinin kur ayarlamasını (Amerikan dolarına çevirelim) yapıp USD cinsinden hesaplayalım.
  • Son olarak kur ayarlaması yapılmış veriyi grafiğe dökelim.
WDIsearch(string = "gdp.*capita.*constant.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.PCAP.KN" GDP per capita (constant LCU) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#>                       indicator                            name 
#>                "NY.GDP.PCAP.KN" "GDP per capita (constant LCU)"
WDIsearch(string = "exchange.*rate.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "PA.NUS.FCRF" Official exchange rate (LCU per US$, end period) datasını kullanacağız.
#>      indicator    
#> [1,] "DPANUSLCU"  
#> [2,] "DPANUSSPB"  
#> [3,] "DPANUSSPF"  
#> [4,] "PA.NUS"     
#> [5,] "PA.NUS.FCRF"
#> [6,] "PE.NUS.FCAE"
#>      name                                                              
#> [1,] "Official exchange rate, LCU per USD, period average"             
#> [2,] "Exchange rate, new LCU per USD extended backward, period average"
#> [3,] "Exchange rate, old LCU per USD extended forward, period average" 
#> [4,] "Exchange rate (LCU per US$, period average)"                     
#> [5,] "Official exchange rate (LCU per US$, period average)"            
#> [6,] "Official exchange rate (LCU per US$, end period)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.PCAP.KN", "PA.NUS.FCRF"), start = 2000, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.

data <- data[, c("year", "NY.GDP.PCAP.KN", "PA.NUS.FCRF")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP.PCAP", "Exchange.Rate") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP.PCAP", "Exchange.Rate")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Nüfus ayarlaması.
data$R.GDP.PCAP.USD <- data$R.GDP.PCAP / data$Exchange.Rate ## Nüfus ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "R.GDP.PCAP.USD"
variable.name <- "Kişi Başı Reel GSYH (2009 USD)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


3.4 Büyüme Oranı

  • Örnek olması açısından World Bank’ten “Türkiye için Kişi Başı Reel Gayri Safi Yurtiçi Hasıla (2009 Baz Yılı)” verisini USD cinsinden indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş veri üzerinden büyüme oranı hesaplayalım.
  • Son olarak büyüme oranı hesaplanmış veriyi grafiğe dökelim.
WDIsearch(string = "gdp.*capita.*constant", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.PCAP.KD" GDP per capita (constant 2010 US$) datasını kullanacağız. 2010 baz yılı kullanılıyor.
#>      indicator             
#> [1,] "6.0.GDPpc_constant"  
#> [2,] "NY.GDP.PCAP.KD"      
#> [3,] "NY.GDP.PCAP.KN"      
#> [4,] "NY.GDP.PCAP.PP.KD"   
#> [5,] "NY.GDP.PCAP.PP.KD.87"
#>      name                                                  
#> [1,] "GDP per capita, PPP (constant 2011 international $) "
#> [2,] "GDP per capita (constant 2010 US$)"                  
#> [3,] "GDP per capita (constant LCU)"                       
#> [4,] "GDP per capita, PPP (constant 2017 international $)" 
#> [5,] "GDP per capita, PPP (constant 1987 international $)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.PCAP.KD"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.

data <- data[, c("year", "NY.GDP.PCAP.KD")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP.PCAP") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP.PCAP")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Büyüme oranı hesaplaniyor.
temp <- data ## Aşağıdaki dögünün işlemesi için datayı farklı bir isimle kaydedip onunla işlem yapıyoruz.
for (i in 3:ncol(temp)) {
    x <- temp[ , i]
    growth.x <- 100 * (diff(x, lag = 1, differences = 1) / x[-length(x)])
    growth.x <- round(growth.x, 3)
    x <- as.data.frame(c(NA, growth.x), stringsAsFactors = FALSE)
    colnames(x) <- paste0("Gr.", colnames(temp)[i]) ## Büyüme değerlerini "Gr." ile ifade ediyoruz.
    temp <- cbind(temp, x)
}
data <- temp ## Tekrar aynı ismi kullanmaya başlıyoruz.
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "Gr.R.GDP.PCAP"
variable.name <- "Kişi Başı Reel GSYH Büyüme Oranı (USD)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    geom_hline(aes(yintercept = 0), show.legend = FALSE, linetype = 1, colour = 2, size = 0.25) +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")
#> Warning: Removed 1 row(s) containing missing values (geom_path).
#> Warning: Removed 1 rows containing missing values (geom_point).


3.5 İndeks Ayarlaması

  • Örnek olması açısından World Bank’ten “Türkiye için Tüketici Fiyatları İndeksi (2010 Baz Yılı)” verisini indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş veri üzerinden yeni bir baz yılı belirleyelim.
  • Son olarak yeni baz yılı ile hesaplanmış veriyi grafiğe dökelim.
WDIsearch(string = "consumer.*price.*index", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "FP.CPI.TOTL" Consumer price index (2010 = 100) datasını kullanacağız. 2010 baz yılı kullanılıyor.
#>      indicator             name                                         
#> [1,] "2.01.03.01.prcpbase" "Consumer price index base year"             
#> [2,] "EP.CPI.1996"         "Consumer Price Index in 42 cities base 1996"
#> [3,] "EP.CPI.2002"         "Consumer Price Index in 45 cities base 2002"
#> [4,] "EP.CPI.2007"         "Consumer Price Index in 66 cities base 2007"
#> [5,] "EP.CPI.2012"         "Consumer Price Index in 82 cities base 2012"
#> [6,] "FP.CPI.TOTL"         "Consumer price index (2010 = 100)"          
#> [7,] "GFDD.OE.01"          "Consumer price index (2010=100, December)"  
#> [8,] "GFDD.OE.02"          "Consumer price index (2010=100, average)"
data <- WDI(country = c("TR"), indicator = "FP.CPI.TOTL", start = 1960, end = 2019, extra = FALSE)  ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.

data <- data[, c("year", "FP.CPI.TOTL")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "CPI.2010") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "CPI.2010")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Yeni bir baz yılına göre (2019 Baz Yılı) indeksi tekrar hesaplıyoruz.
data$CPI.2019 <- (data$CPI.2010/data[data$Year == 2019, "CPI.2010"]) * 100
data ## Datanın yapısını inceleyelim.

# Grafik
temp <- data
variable <- "CPI.2019"
variable.name <- "Tüketici Fiyatları İndeksi (2019 Baz Yılı)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
    xlab("Zaman (Yıl)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
    geom_hline(aes(yintercept = 0), show.legend = FALSE, linetype = 1, colour = 2, size = 0.25) +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


3.6 Matematiksel Transformasyon

  • Örnek olması açısından Yahoo Finance’ten “Döviz Kuru (TL/USD)” verisini indirip yükleyelim.
  • Daha sonra indirip yüklediğimiz bu veriyi temizleyelim ve düzenleyelim.
  • Daha sonra temizlenmiş ve düzenlenmiş veri üzerinde logaritmik ve Box-Cox transformasyonu uygulayalım.
  • Son olarak düzey formundaki, logaritmik formdaki ve Box-Cox transformasyonu ile değiştirilmiş veriyi grafiğe dökelim.
loadSymbols(Symbols = "TRY=X", periodicity = "daily", return.class = "data.frame") ## Datanın indirilmesi.
#> Warning: TRY=X contains missing values. Some functions will not work if objects
#> contain missing values in the middle of the series. Consider using na.omit(),
#> na.approx(), na.fill(), etc to remove or replace them.
#> [1] "TRY=X"
data <- data.frame(Date = rownames(`TRY=X`), Close = `TRY=X`$`TRY=X.Close`, stringsAsFactors = FALSE) ## Datanın data.frame olarak kaydedilmesi.
data$Date <- as.Date(data$Date) ## Date kategori olarak değiştirildi.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.

# Logaritmik transformasyon.
data$Ln.Close <- log(data$Close)

# Box-Cox transformasyonu.
value <- data$Close
## Box-cox transformasyonu ile bulunan lambda değerine göre ham veri değiştiriliyor: Eğer lambda = 1 ise transformasyona gerek yok, eğer lambda == 0 ise ln(x), ve eğer lambda farklı bir değer ise (x^lambda - 1)/lambda.
s.lambda <- forecast::BoxCox.lambda(value, method = c("loglik"), lower = -2, upper = 2) ## Box-cox transformasyonu sonucunda bulunan lambda değeri. method = c("guerrero") kriteri de kullanılabilir. Genelde kullanılan alt limit -2 ve üst limit ise 2'dir.
if(s.lambda == 1) { ## Lambda = 1.
    value.boxcox <- value
    message("Box-Cox transformasyonu sonucu: Transformasyona gerek yok.")
} else if(s.lambda == 0) { ## Lambda = 0.
    value.boxcox <- log(value)
    message("Box-Cox transformasyonu sonucu: Logaritmik Transformasyon yapıldı.")
} else { ## Lambda farklı bir değer ise.
    value.boxcox <- (value^s.lambda - 1)/s.lambda
    message(paste0("Box-Cox transformasyonu sonucu: λ = ", round(s.lambda, 2), " kullanılarak Box-Cox transformasyonu yapıldı."))
}
#> Box-Cox transformasyonu sonucu: λ = -0.7 kullanılarak Box-Cox transformasyonu yapıldı.
data$Box.Cox.Close <- value.boxcox
data ## Datanın yapısını inceleyelim.

# Düzey Formu: Grafik
temp <- data
variable <- "Close"
variable.name <- "Döviz Kuru (TL/USD)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Gün)") + ylab(variable.name) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


# Logaritmik Form: Grafik
temp <- data
variable <- "Ln.Close"
y.lab <- "Ln Döviz Kuru (TL/USD)"
variable.name <- "Logaritmik Transformasyon ile Döviz Kuru (TL/USD)"

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Gün)") + ylab(y.lab) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


# Box-Cox Transformasyonu: Grafik
temp <- data
variable <- "Box.Cox.Close"
y.lab <- paste0("Box-Cox $(\\lambda = ", round(s.lambda, 2), ")$ ile Döviz Kuru (TL/USD)")
variable.name <- paste0("Box-Cox Transformasyonu ile Döviz Kuru (TL/USD)")

ggplot(temp) +
    geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
    xlab("Zaman (Gün)") + ylab(latex2exp::TeX(y.lab)) +
    # labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
    scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
    scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
    theme_grey() +
    theme(legend.position = "top")


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ACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAikF6ACQkogICCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUvQAdAKr+HJADBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRSCtABICURERBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqHoBOgBU/TkgBwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpBSgA0BKIiIggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFD1AnQAqPpzQA4QQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEgpQAeAlEREQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECg6gXoAFD154AcIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQUoAOACmJiIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQNUL1Kr6LJADBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCA7AtOnT7ctW7bYFVdcYcXFxSl3+t1339mGDRts48aNtnXrVmvbtq117NjRateunTKtP8Jnn31mZWVl7pjNmjVzm7Zt22a7d+92y8cee6wVFRX5k2Rl+euvv7YpU6ZY8+bNrWfPnlnZJztBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQCK8AMwCE99yQMwQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGQCfzzn/90jbjVkDvTHzUqJ1SuwJw5c6x37972zDPPpGz8P3PmTLvmmmuscePGrtH/OeecY/369bPTTjvN6tWrZyeddJINHjzYdQ5IJ9ft27e3Nm3auDRe/N/85jdundbv3LnTW53V17p169rf/vY3V+558+Zldd/sDAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCB8AnQACN85IUcIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQoYBG8leDfoW77747YWqNyD9gwAA799xz7YknnrBdu3ZViLt//35bvHixPf3003bKKafY5MmTK8QJ04p77rnHDh486MqvvBMQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEqq9ArepbNEqGAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB2BVq0aGF33HFH2jvVSPTLly938Y855pi00xExc4ExY8bYokWLbMiQIW70/nh72Lhxo/Xq1cuWLVvmNteuXduuvvpq69q1q5188sl2/PHH25o1a2z+/Pk2ffp0mzBhgu3YscP69+9vN998s/3pT3+Kt1u37tRTTzV1QjjuuOOicUpKSqxz587ufc2aNaPrs72gYwwcONDGjx/v8njrrbdm+xDsDwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAkAkVlkRCSvJANBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQSqjYBGjx88eLArT7NmzWzu3LlGJ4DKOb3r16+3du3auVHw1eGibdu2cQ900UUX2RtvvOG2denSxdRBo1OnTnHjauXf//53u/baa10ngKKiIps1a5Z17949Yfyq3LBixQo78cQTrVatWrZ69Wpr2bJlVWaHYyOAAAIIIIAAAggggAACCCCAAAIIIIAAAghUkkCNStovu0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoGAF3nrrLfv5z3/uyn/44Yfbiy++SOP/SqwN9913n3377bdudP9Ejf8ff/zxco3/P/jgg6SN/5XdK664wnUS0LLGU0o2A4DiVGVo3769/fCHP7R9+/bZ/fffX5VZ4dgIIIAAAggggAACCCCAAAIIIIAAAggggAAClSjADACViMuuEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBApPYOXKlfb973/fvvzyS1f4Rx991K677rqkEBs3brRly5a5n9LSUmvdurUdf/zxbkT3o446Km7adevWmeI2bNjQOnTo4OJs2bLFZsyYYcrDD37wAzdafXFxcbn0W7dudXEWL17sRso/++yz7bjjjisXJ96bTPN44MAB+/jjj92uOnbsaPXr17f9+/fbwoULbfbs2bZz507TKPxdu3a1RGWMl4/YddpPq1at3P6eeOIJGzJkSGwU914dA9asWeNGyP/oo4/stNNOixsvdqUa/p988skmL1l+/vnnVrduXRdNnQ7mz5/vlktKSqx58+axyd377du326pVq9yyZhzw0muFdx4bNGhgJ5xwgoujcyQj7fvYY491TieddJLVqJF8XCfVtaFDh9oRRxxhmhWhXr16bn/8QgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKg+AnQAqD7nkpIggAACCCCAAAIIIIAAAggggAACCCCAAAIIVLHA7t277cwzz3SNxZUVNcZ++OGHE+ZKjb+vvvpq04wB8UKdOnVs1KhRdtNNN7mG6/44N9xwg2nk+/PPP9+mTZtmAwYMsKlTp/qjmGYfeOihh+yaa65xje8HDRpkzz//fIU4t912m40cObLceu9N0DyqA0SjRo3cbt555x077LDD7N///d9NjeH9QWVUOVJ1kvCn8S//+c9/tptvvtntXx0gvGP642i0f3WIUBg4cKA999xz/s0pl999911To/xevXqV2/9nn33mOmtoB2PHjnXnKd7OnnnmGZO9gjofdOvWLRrNO4/nnXeevfnmm64+jB8/PrrdW1BHjYkTJ9rRRx/trarwqjy2bNnS1Pli3Lhxpn0TEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBKqXQK3qVRxKgwACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA1QhopPjBgwdHG/+fc845dv/99yfMjBp79+vXz3bt2uVGdj/rrLOsTZs2rvH2ihUrbM6cOfbNN9/Yf/7nf7o4d9xxR9x9KX3v3r3tvffec50ENPvA3r17bcGCBaYR6q+//no3srwaqP/P//yPNWnSxI1ov3r1alu7dq2Lo04GapTep0+fcsfIVh5feeUVe/DBB12+2rVr5xrNa3T7bdu2uTL+4he/cNuGDx9e7vjpvJk0aZKL1rNnz3KN8/1pvThad+mll/o3pbWsxvmVHb7++mvXQeK1115zsyVoxP/vvvvO5s2bZwcPHrRZs2a5c6Tzpk4T8ULTpk3t3HPPNXW4UJnpABBPiXUIIIAAAggggAACCCCAAAIIIIAAAggggEB+CySfKza/y0buEUAAAQQQQAABBBBAAAEEEE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nll1+e8fFmzJjh0jRu3NhuuOGGhOk/+OCD6LZkI9xHI2VxIR/y6G/g7m/4Hsughvq33HKLW60R8q+66io3y0JsvETvE+27uLg4miRRHEX46KOPovEqe8GfD79PZR+X/SOAAAIIIIAAAggggAACCCCAAAIIIIAAAgjkRoAOALlx5igIIIAAAggggAACCCCAAAIIIIAAAggggAAC1UBgyJAh9sknn7iSXHnllTZy5MhApVIjdIVdu3bZli1b4u5j/PjxNmnSpOi2ZCPMRyNlcSEf8njiiSdGS7xw4cLocryFYcOG2cUXX+w2LVu2zM0A8P7778eLGl2njh6jR4+2AQMGRNf5F9SBo169em7VxIkTox1D/HFefPFFe/nll/2rKnXZ7+D3qdSDsnMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBnAnUytmROBACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAnks8MILL9jkyZNdCWrXrm3t27e3MWPGZFSia6+91po2bWpnnHGGqRG6Gtnfeuutbj/Nmzd3+9II7mr4rwbrZWVl0f3v2LEjupyLhXzI4znnnGMNGjRwo/n/4x//SNhQ3/N66qmnXCeAuXPn2po1a+yss86yM88806Xr2LGjNWvWzFavXm0ff/yxzZs3z2bNmuU6aXjpe/ToYT/96U+9t1ZUVGQDBw60xx57zEpLS23QoEGuU0iXLl1s3bp1Nm3aNLvpppvssMMOs3379kXTVeaCHBSOPPJI6969e2Uein0jgAACCCCAAAIIIIAAAggggAACCCCAAAIIVIEAHQCqAJ1DIoAAAggggAACCCCAAAIIIIAAAggggAACCOSfwBdffBHNtBpz//73v4++T3fhkksucR0A/vCHP7hR4bVPNUp/+umn7fTTT7c9e/bYkiVLXMN/NUa/4447bOjQobZ///7ozAPpHutQ4+VDHtWwvnfv3vbf//3frrF+qjI3adLENOq/Ol3cfffdzvmDDz4w/SQLOhe33367XX/99a7Rvz/uDTfcYBrlf/v27TZ16lT3U79+/WjHAXX4ePLJJ03nPhdBnRYU+vTpYzVr1szFITkGAggggAACCCCAAAIIIIAAAggggAACCCCAQA4FauTwWBwKAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEIgLHHHOMvfvuu9arVy/noZH+58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" width="1536" style="display: block; margin: auto;" />